import socket

if __name__ == '__main__':
    # 1、创建客户端套接字对象
    # socket.AF_INET--- 使⽤IPv4协议，AF_INET6---使⽤IPv6协议
    # socket.SOCK_STREAM--- 使⽤TCP协议，SOCK_DGRAM---使⽤UDP协议
    tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 2、和服务器端套接字建⽴连接(参数必须是⼀个元祖)
    tcp_client_socket.connect(("127.0.0.1", 8080))
    # 3、发送数据
    # 使⽤UTF-8编码发送中英⽂混合的数据
    tcp_client_socket.send('hello, 你好啊'.encode(encoding='utf-8'))
    # 如果需要兼容某些特定的编码环境，可以使⽤gbk编码
    # tcp_client_socket.send('hello, 你好啊'.encode(encoding='gbk'))
    # 4、接收数据
    # 接收数据的最⼤⻓度为1024字节，使⽤UTF-8解码接收到的数据
    recv_data = tcp_client_socket.recv(1024).decode('utf-8')
    # 如果服务器发送的数据使⽤的是gbk编码，则使⽤gbk解码
    # recv_data = tcp_client_socket.recv(1024).decode('gbk')
    print(f"接收到的数据为：{recv_data}")
    # 5、关闭客户端套接字
    # 释放⽹络资源，确保数据发送完成
    tcp_client_socket.close()
